package com.xnj.tyrcathdemo;

import java.io.*;

// try-with-resource
public class FileCopyDemoTest2 {

    public static void main(String[] args) throws IOException {
        try (
                // 1. 创建文件字节输入流与源文件连通：读取源文件
                InputStream is = new FileInputStream("src/疯狂星期四.png");
                // 2. 创建文件字节输出流与目标文件连通：写入目标文件
                OutputStream os = new FileOutputStream("src/疯狂星期四copy.png");

                // 注意：这里只能放置资源对象。（流对象）
                // 如何判断？资源都会实现AutoCloseable接口,并实现close方法
                // 用完之后会自动调用close方法完成资源释放操作
                ){
            // 3. 创建一个字节数组,负责转移字节数据
            byte[] buffer = new byte[1024]; // 1KB=>1024字节
            // 4. 从字节输入流中读取字节数据，写出到字节输出流中
            int len; // len表示每次读取的字节数
            while ((len = is.read(buffer)) != -1){
                // 写入目标文件
                // 输入流读多少输出流写多少
                os.write(buffer, 0, len);
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }




    }
}
